package entity

import dom "a-common/domain"

// SysDept 部门表
type SysDept struct {
	DeptId         int64  `xorm:"pk autoincr notnull"` // 部门ID
	ParentId       int64  // 父部门ID
	Ancestors      string `xorm:"varchar(500)"` // 祖级列表
	DeptName       string `xorm:"varchar(30)"`  // 部门名称
	OrderNum       int    // 显示顺序
	Leader         string `xorm:"varchar(20)"`             // 负责人
	Phone          string `xorm:"varchar(20)"`             // 联系电话
	Email          string `xorm:"varchar(50)"`             // 邮箱
	Status         string `xorm:"varchar(1)"`              // 部门状态（0正常 1停用）
	DelFlag        string `xorm:"varchar(1) default('0')"` // 删除标志（0代表存在 2代表删除）
	dom.BaseStruct `xorm:"extends"`
}

// SysDeptVo 映射
type SysDeptVo struct {
	DeptId    int64  `json:"deptId,omitempty" xorm:"pk"`
	ParentId  int64  `json:"parentId,omitempty"`
	Ancestors string `json:"ancestors,omitempty"`
	DeptName  string `json:"deptName,omitempty"`
	OrderNum  int    `json:"orderNum,omitempty"`
	Leader    string `json:"leader,omitempty"`
	Phone     string `json:"phone,omitempty"`
	Email     string `json:"email,omitempty"`
	Status    string `json:"status,omitempty"`
	DelFlag   string `json:"delFlag,omitempty"`
}

// SysDeptPageVo 页面
type SysDeptPageVo struct {
	SysDeptVo    `xorm:"extends"`
	dom.BaseJson `xorm:"extends"`
}

// SysDeptDto 传输
type SysDeptDto struct {
	SysDeptPageVo
	dom.PageDto
}

func (m *SysDeptDto) Validator() error {
	if m.PageNum < 1 {
		m.PageNum = 1
	}
	if m.PageSize < 1 {
		m.PageSize = 10
	}
	return nil
}
